<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <script>
            /**
             * promise.then() 返回的新 promise 的结果状态由什么决定 ?
             * 
             * then 方法所指定回调函数的执行结果决定
             *  1. 返回值不是 promise 对象. 则状态为成功
             *  2. 返回是 promise 对象, 则状态由返回的 promise 决定
             *  3. 抛出错误    状态为失败
             */
            let p = new Promise((resolve, reject) => {
                reject("ok");
            });

            // promise 状态由谁决定? 
            let res = p.then(v => {
                //1. 返回非 promise
                // console.log(v);
                // return 123;
                // return '既然认准这条路，何必去打听要走多久';
                //2. 返回 promise
                // return new Promise((resolve, reject) => {
                //     // resolve('123');
                //     reject('error');
                // })
                //3. 抛出错误
                // throw new Error('就算是堕落浪子，也能力挽狂澜')
                throw '出问题啦';
            }, r => {
                console.log(r);
            });

            console.log(res);
        </script>
    </body>
</html>
